Định nghĩa các loại trừu tượng Kiểu trừu tượng

Lớp trừu tượng có thể được tạo ra, định nghĩa, hay mô phỏng, theo nhiều cách:

  • Bằng cách sử dụng từ khóa abstract trong định nghĩa lớp, như trong Java, D hay C#.
  • Bằng cách thêm vào, trong định nghĩa lớp, một hay nhiều phương thức trừu tượng (gọi là các hàm ảo thuần túy trong C++), mà lớp dược khai báo để chấp nhận như là một phần giao thức của nó, nhưng không có hiện thực nào được cung cấp.
  • Bằng cách kế thừa từ một kiểu trừu tượng, nhưng không ghi đè tất cả các tính năng cần thiết để hoàn thành định nghĩa lớp.
  • Một số ngôn ngữ kiểu động như Smalltalk, bất kì lớp này gửi một phương thức cụ thể tới this, nhưng không hiện thực phương thức đó, thì có thể được xem là trừu tượng. (Tuy nhiên, trong nhiều ngôn ngữ, Objective-C, lỗi không được phát hiện đến khi lớp được sử dụng, và thông báo trả về kết quả trong lỗi ngoại lệ như "Does not recognize selector: xxx" as - [NSObject doesNotRecognizeSelector:(SEL)selector] được gọi khi phát hiện phương thức chưa được hiện thực).

Ví dụ (Java)

//By default, all methods in all classes are concrete, unless the abstract keyword is used.abstract class Demo {    // An abstract class may include abstract methods, which have no implementation.    abstract public int sum(int x, int y);    // An abstract class may also include concrete methods.    public int product(int x, int y) { return x*y; }}//By default, all methods in all interfaces are abstract, unless the default keyword is used.interface DemoInterface {    [abstract] int getLength(); //Abstract can be used here, though is completely useless        //The default keyword can be used in this context to specify a concrete method in an interface    default int product(int x, int y) {        return x * y;    }}